package com.bruce.principle.segregation;

import org.junit.Test;

/**
 * Created by bruce on 2018/10/23 22:14
 */
public class MainTest {

    //明显这里的鸟是不会游泳的,但是鸟实现了IAnimalAction接口,只能用一个错误实现或者空实现
    //说明这里的IAnimalAction接口没有实现接口隔离原则
    @Test
    public void test1(){
        Bird bird = new Bird();
        bird.eat();
        bird.fly();
        bird.swim();

        Dog dog = new Dog();
        dog.eat();
        dog.fly();
        dog.swim();
        System.out.println();
    }

    //吃这个动作是每个动物都有的,但是飞这个动作只有会飞的动物才有
    //可以使用飞的接口继承吃的接口,然后具体的动物实现相关接口
    //使用接口隔离原则以后,鸟就不会有游泳的动作,狗就不会有飞的动作,这样接口更加清晰明了
    @Test
    public void test2(){
        Bird2 bird = new Bird2();
        bird.eat();
        bird.fly();

        Dog2 dog2 = new Dog2();
        dog2.eat();
        dog2.swim();
    }






}
